" 不要使用vi的键盘模式，而是vim自己的
set nocompatible
filetype on
filetype indent on
filetype plugin on
filetype plugin indent on
let mapleader=","
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
Plugin 'junegunn/vim-easy-align'
"Plugin 'https://gitee.com/mamamiyear/jedi-vim.git'
"Plugin 'https://gitee.com/quick-source/neocomplete.vim.git'
Plugin 'honza/vim-snippets'
Plugin 'SirVer/ultisnips'
Plugin 'thinca/vim-quickrun'
Plugin 'scrooloose/nerdcommenter'
Plugin 'Valloric/YouCompleteMe'


" 美观配置
Plugin 'connorholyday/vim-snazzy'
Plugin 'itchyny/vim-cursorword'
Plugin 'vim-airline/vim-airline'


call vundle#end()
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"  colortheme
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
let g:SnazzyTransparent = 1
color snazzy
syntax enable " 开启语法高亮支持
syntax on " 开启代码高亮
set t_Co=256 " 开启256色支持
set background=dark
"set background=light


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"" =>  vim-easy-align[快速对齐] + ronson/vim-trailing-whitespace
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
vmap <Leader>a <Plug>(EasyAlign)
nmap <Leader>a <Plug>(EasyAlign)
if !exists('g:easy_align_delimiters')
  let g:easy_align_delimiters = {}
endif
let g:easy_align_delimiters['#'] = { 'pattern': '#', 'ignore_groups': ['String'] }
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"" =>  snippets（自定义补全）
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""let g:UltiSnipsSnippetDirectories=["mysnippets"]
let g:UltiSnipsExpandTrigger="<c-n>"
let g:UltiSnipsJumpForwardTrigger="<c-j>"
let g:UltiSnipsJumpBackwardTrigger="<c-l>"
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"" =>  nerdcomment（注释）
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 注释的时候自动加个空格, 强迫症必配
let g:NERDSpaceDelims=1
let NERDCompactSexyComs=1       " 多行注释时样子更好看
let g:NERDDefaultAlign = 'left'  "将行注释符左对齐
function HeaderPython()
call setline(1, "#!/usr/bin/env python3")
call append(1, "#-*- coding:utf8 -*-")
call append(2, "# Power by " . strftime('%Y-%m-%d %T', localtime()))
normal G
normal o
normal o
endf
autocmd bufnewfile *.py call HeaderPython()

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"" =>  quick run [快速执行]
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
let g:quickrun_config = {
\   "_" :{
\       "outputter" : "message",
\   },
\}
let g:quickrun_no_default_key_mappings = 1
nmap <Leader>r <Plug>(quickrun)
map <F10> :QuickRun<CR>
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"" =>  ui beautification（界面美化）
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set nu    " 开启行号
set ruler " 开启标尺
set cursorline " 开启高亮光标所在行
set hlsearch " 开启搜索结果高亮显示
set incsearch " 开启搜索逐字符高亮
set ignorecase
set smartcase
" 我的状态行显示的内容（包括文件类型和解码）
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}
set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%]
"" 总是显示状态行
set laststatus=2
" 命令行（在状态行下）的高度，默认为1，这里是2
set cmdheight=2
set smartindent
set autoindent
set ts=4
set softtabstop=4
set shiftwidth=4
"""禁止生成临时文件
set nobackup
set noswapfile
"""鼠标选择可以滚动
set mouse=a
set selection=inclusive
set selectmode=mouse,key
"光标移动到buffer的顶部和底部时保持3行距离
set scrolloff=3
"设置在状态行显示的信息
set foldcolumn=0
set foldmethod=indent
set foldlevel=3
set foldenable              " 开始折叠
" 去掉输入错误的提示声音
set noeb
" 在处理未保存或只读文件的时候，弹出确认
set confirm
" 高亮显示匹配的括号
set showmatch
" 匹配括号高亮的时间（单位是十分之一秒）
set matchtime=1
set showcmd
set norelativenumber
set wildmenu
set backspace=indent,eol,start
set foldmethod=indent
set foldlevel=99
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"" =>  system settings（快捷键设置以及其他系统选项）
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
noremap <LEADER><CR> :nohlsearch<CR>
"map <LEADER>l <C-w>l
"map <LEADER>k <C-w>k
"map <LEADER>h <C-w>h
"map <LEADER>j <C-w>j
noremap J 5j
noremap K 5k
"map R :source $MYVIMRC<CR>
noremap <LEADER><CR> :nohlsearch<CR>
inoremap ' ''<ESC>i
inoremap " ""<ESC>i
inoremap ( ()<ESC>i
inoremap [ []<ESC>i
inoremap { {<CR>}<ESC>O
